# encoding: UTF-8

require '../context'

describe Moderador do

	it 'debería detectar literales correctamente' do
		verificar_aprobados([
			'¿Por qué el pollo cruzó el camino?'
		])

		verificar_reprobados([
			'El pollo este es un pelotudo',
			'El muy hijo de puta cruzó el camino cuando nadie lo miraba'
		])
	end

	it 'debería detectar insultos flexionados correctamente' do
		verificar_aprobados([
			'Los niños y las niñas son los únicos y las únicas privilegiados y privilegiadas'
		])

		verificar_reprobados([
			'Pelotudos y boludas son iguales ante la ley',
			'Los muy hijos de puta se fueron sin avisarme',
		])
	end

	it 'debería detectar diminutivos correctamente' do
		verificar_aprobados([
			'Te mando un besito grande.'
		])

		verificar_reprobados([
			'¿Quién va a ser, si no el pelotudito de siempre?',
			'Tremendo boludín viniste a salir.',
		])
	end

	it 'debería detectar aumentativos correctamente' do
		verificar_aprobados([
			'De golpe y porrazo me moría de hambre.'
		])

		verificar_reprobados([
			'Forrazo como no hay dos.',
			'La putísima madre que lo parió',
		])
	end

	it 'debería detectar peyorativos correctamente' do
		verificar_aprobados([
			'Libracos no, alpargatuchas sí.'
		])

		verificar_reprobados([
			'A pelotudoncho no te gana nadie.',
			'El rey de los boludongos.',
		])
	end

	it 'debería detectar insultos con prefijo correctamente' do
		verificar_aprobados([
			'Hipermercado supercaligrafilistoexpialidoso.'
		])

		verificar_reprobados([
			'¡Hijo de la remilputa!',
			'Superboludo al rescate.',
		])
	end

	it 'debería detectar insultos con los caracteres separados' do
		verificar_aprobados([
			'E-s-p-e-c-t-a-c-u-l-a-r'
		])

		verificar_reprobados([
			'Se la dió de p.e.l.o.t.u.d.o',
			'Le pasó x h i j o d e p u t a.',
		])
	end

	it 'debería detectar insultos partidos' do
		verificar_aprobados([
			'Parece verdadero pelo tu disfraz de gorila.'
		])

		verificar_reprobados([
			'No te diste cuenta por pelo-tudo.',
			'No te diste cuenta por bo lu do',
		])
	end

	it 'debería detectar insultos pegados a otras palabras' do
		verificar_aprobados([
			'Diputados tratan prohibición de llamar ciencia a la computación.'
		])

		verificar_reprobados([
			'¿Qué mirás, pelotudo.com?',
			'Sólo un hijodeputa puede querer algo así.',
		])
	end

	it 'debería detectar insultos con letras reemplazadas por números y otros símbolos' do
		verificar_aprobados([
			'L33t a1N7 p-r8 NOR 1am3.'
		])

		verificar_reprobados([
			'Hay que explicárselo al p3l07udo de siempre.',
			'A los b01u2 hay que decírselos dos veces',
		])
	end

	it 'debería detectar ciertos reemplazos fonéticos' do
		verificar_aprobados([
			'Amerika perdida.'
		])

		verificar_reprobados([
			'¿Es voludo o se hace?',
			'El ijoeputa me dejó de garpe.',
		])
	end

	it 'debería detectar insultos con las letras repetidas' do
		verificar_aprobados([
			'El campana: es taaan-tonn-tiiiín...'
		])

		verificar_reprobados([
			'Andaaaááá, boludoooo.',
			'Rajá, boluuuuudo.',
		])
	end
end
def verificar_aprobados(comentarios)
	comentarios.each do |comentario|
		Context.moderador.procesar(comentario).should be_an_instance_of ResultadoDeModeracionAprobada
	end
end

def verificar_reprobados(comentarios)
	comentarios.each do |comentario|
		Context.moderador.procesar(comentario).should be_an_instance_of ResultadoDeModeracionReprobada
	end
end